package com.example.demo.mapper;

import com.example.demo.entity.News;
import com.example.demo.param.vo.NewsArrVO;
import com.example.demo.param.vo.NewsVO;
import org.apache.ibatis.annotations.Param;

import java.util.Date;

public interface INewsMapper {
    /**
     * 新增消息
     * @param id
     * @param userId
     * @param reUserId
     * @param newsType
     * @param newsTitle
     * @param newsContent
     * @param isWatch
     * @param isDelete
     * @param createdTime
     * @return
     */
    Integer insert(@Param("id") String id, @Param("userId") String userId, @Param("reUserId") String reUserId,
                   @Param("newsType") Integer newsType, @Param("newsTitle") String newsTitle, @Param("newsContent") String newsContent,
                   @Param("isWatch") Integer isWatch, @Param("isDelete") Integer isDelete, @Param("createdTime")Date createdTime
                   );

    /**
     * 删除消息
     * @param id
     * @return
     */
    Integer delete(@Param("id") String id);

    /**
     * 修改消息
     * @param id
     * @param newsContent
     * @param isWatch
     * @param newsTitle
     * @return
     */
    Integer update(@Param("id") String id, @Param("newsContent") String newsContent, @Param("isWatch") Integer isWatch,
                   @Param("newsTitle") String newsTitle);

    /**
     * 查找单条消息
     * @param id
     * @return
     */
    NewsVO getById(@Param("id") String id);

    /**
     * 查找消息列表
     * @param userId
     * @param newsTitle
     * @param newsContent
     * @param page
     * @param pageSize
     * @return
     */
    NewsArrVO getQueryPage(@Param("userId") String userId, @Param("newsTitle") String newsTitle, @Param("newsContent") String newsContent,
                           @Param("page") Integer page, @Param("pageSize") Integer pageSize);

}
